<?php

/**
 * Интерфейс для драйвера кэша
 * 
 * @package Progmatic
 * @author Ladygin Sergey
 * @copyright 2009 Ladygin Sergey
 */
interface CacheInterface {
    
    
    /**
     * Сохранение данных в кэш
     * @param string $group Группа
     * @param string $identifier Индентификатор
     * @param mixed $data Данный для сохранения
     * @return boolean
     */
    public function set($group, $identifier, $data);

    
    /**
     * Получение данных из кэша
     * @param string $group Группа
     * @param string $identifier Индентификатор
     * @return mixed
     */
    public function get($group, $identifier);

    
    /**
     * Удаление конкретного кэша
     * @param string $group
     * @param string $identifier
     * @return boolean
     */
    public function clear($group, $identifier);

    
    /**
     * Очистка группы кэша
     * @param string $group Группа
     * @return boolean
     */
    public function clearGroup($group);

    
    /**
     * Полная очистка кэша
     * @return boolean
     */
    public function clearAll();

    
    /**
     * Получение даты последнего изменения кэша
     * @param string $groupName Группа
     * @param string $identifier Индентификатор
     * @return int
     */
    public function modificationTime($group, $identifier);

    
    /**
     * Существует кэш или нет
     * @param string $group Группа
     * @param string $identifier Индентификатор
     * @return boolean
     */
    public function exists($group, $identifier);
}